﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestVisioCanvas.Models
{
    /// <summary>    
    /// Must contain the details of a sellable product.
    /// Its definition derives from data present on the database that should be visible 
    /// inside this application
    /// </summary>
    /// <remarks>This class will be fill with the all the product details 
    /// of the products present in the database</remarks>
    public class ProductDetailsModel : BaseNotify
    {
        private string _category;
        private string _productName;
        private string _productShape;
        private double _width;
        private double _height;
        private double _lenght;
        private string _material;
        private string _imagePath;
        private double _priceNoVAT;
        private System.Windows.Media.Color _color;
        private string _CADpath;
        private string _manufacturer;
        private int _PSMNTProductCode;
        private string _description;
        
        /// <summary>
        /// Internal code of the product (code used inside PASSAMONTI SRL)
        /// </summary>
        public int PSMNTProductCode
        {
            get { return _PSMNTProductCode; }
            set { _PSMNTProductCode = value; }
        }

        /// <summary>
        /// Description
        /// </summary>
        public string Description
        {
            get { return _description; }
            set { _description = value; }
        }
        
        public string Manufacturer
        {
            get { return _manufacturer; }
            set { _manufacturer = value; }
        }
        
        public string CadFilePath
        {
            get { return _CADpath; }
            set { _CADpath = value; }
        }
        
        /// <summary>
        /// Dimensions as string length*width*height
        /// </summary>
        public string Dimensions
        {
            get { return Lenght.ToString() + "x" + Width.ToString() + "x" + Height.ToString(); }
        }

        public System.Windows.Media.Color Color
        {
            get { return _color; }
            set { _color = value; }
        }

        public string PriceNoVATStr
        {
            get { return _priceNoVAT.ToString() + " €"; }            
        }

        public double PriceNoVAT
        {
            get { return _priceNoVAT; }
            set { _priceNoVAT = value; }
        }

        public string ImagePath
        {
            get { return _imagePath; }
            set { _imagePath = value; }
        }

        public string  Material
        {
            get { return _material; }
            set { _material = value; }
        }

        public double  Lenght
        {
            get { return _lenght; }
            set { _lenght = value; }
        }
        
        public double Height
        {
            get { return _height; }
            set { _height = value; }
        }

        public double Width
        {
            get { return _width; }
            set { _width = value; }
        }

        public string ProductShape
        {
            get { return _productShape; }
            set { _productShape = value; }
        }

        public string  ProductName
        {
            get { return _productName; }
            set { _productName = value; }
        }

        public string Category
        {
            get { return _category; }
            set { _category = value; }
        }
    }
}
